Simulation techniques provide a manner in which a complex system can be modeled in order to compare results from running the model with actual results observed from the complex system. An example of a complex system is a distributed manufacturing plant capable of fabricating a variety of products through ordered sequences of process steps. Distributed factories consist of heterogeneous, unconnected work stations capable of adapting to a varying product mix but resulting in complexity of operations, management, and quality control. Distributed factories are common in the manufacture of modern electronics products. Various types of distributed factories can be involved in the manufacture of modern electronics products such as wafer slicing, wafer fabrication, semiconductor component assembly, circuit board fabrication, circuit board assembly, and electronic product assembly.
The typical example of a distributed factory is a wafer fabrication plant which may manufacture products simultaneously according to over 1,000 processes, each averaging over 100 steps. Such a large number of processes is difficult to represent in a fabrication graph but can be described in a computer system. However, discrete event computer simulation of a wafer fabrication plant is a complicated process. A very large number of parameters exist, usually well over 10,000 parameters, that can be changed in the simulation model to effect its behavior. As a result, simulation as an analysis technique is difficult and time consuming to use effectively. The natural outcome in such a situation is that simulation is either not used, or worse yet, it is used incorrectly. In many cases, too few simulations are run to arrive at statistically valid results.
Existing simulation languages and systems, such as SLAM, SIMSCRIPT, SIMON, and GPSS, implicitly combine state and structure information allowing only a single thread of control, i.e. simulation, to be active at any one time. Though most simulation software can run on multiple processors, simulations can only be run in serial fashion. In most cases, the data from each simulation is stored externally from the simulation model representation, thus making it difficult to have a detailed comparison of simulation results. Therefore, it is desirable to simulate a distributed factory by separating state and structure information to allow for multiple threads of control and simulations to be run simultaneously for parallel comparative analysis.
From the foregoing, it may be appreciated that a need has arisen for a method of simulating a complex system that separates state and structure information and allows for multiple simulation runs to occur in parallel to speed the completion of statistically significant experimental results. Further, a need has arisen for a method of simulating a complex system that allows for comparison of simulation results through indexing of state, structure, and parameter information.